OrdenTrabajo = function(){
		var configWindow = {
			edit: "ctgProductoEditarTop",
			grid: "ordenTrabajoGrid",
			save: "ordenTrabajoGuardar",
			form: "detallePedidoForm"
		};
		return {
			obtenerEstadosPedidos: function(){
				var i = 0;
				var grid = Ext.getCmp("ordenTrabajoGrid");
				var seprarado = "~";
				var gridData = "";
				Ext.each(grid.getStore().getRange(), function(){
					gridData = gridData + Ext.getCmp("ordenTrabajoGrid").getStore().getRange()[i].data.pedidoEstado + seprarado;
					i++;
	          });
				return gridData == "~" ? "":gridData;
			},
			guardarProductoTerminado: function(){
				Asi.message.progress("Guardando Informaci\u00F3n...");
					Ext.getCmp("ContenedorPrincipal").getForm().submit({
						url: Asi.constants.CONTEXT_PATH + "/empleado/guardarProductoTerminado",
		    			timeout: Asi.constants.TIMEOUT_SECONDS,
		    			params: {
		    				"pedidoId": OrdenTrabajo.obtenerIdPedido(),
		    				"estado": OrdenTrabajo.obtenerEstadosPedidos()
		    			},
		    			success: function(form, action){
		    				Asi.message.alert(action.result.message);
		    				if(action.result.pedidosEnProceso){
		    					var gridPedidoProceso = Ext.getCmp("ordenTrabajoGrid");
		    					gridPedidoProceso.getStore().removeAll();
		    					gridPedidoProceso.getStore().loadData(action.result.pedidosEnProceso);
		    				}
		    				if(action.result.pedidosFinalizados){
		    					var gridPedidoFinalizado = Ext.getCmp("ordenTrabajoGridFinalizado");
		    					gridPedidoFinalizado.getStore().removeAll();
		    					gridPedidoFinalizado.getStore().loadData(action.result.pedidosFinalizados);
		    				}
		    			},
		    			failure: Asi.form.failureProcedure
					});
			},
			obtenerIdPedido: function(){
				var i = 0;
				var grid = Ext.getCmp("ordenTrabajoGrid");
				var seprarado = "~";
				var gridData = "";
				Ext.each(grid.getStore().getRange(), function(){
					gridData = gridData + Ext.getCmp("ordenTrabajoGrid").getStore().getRange()[i].data.pedidoId + seprarado;
					i++;
	          });
				return gridData == "~" ? "":gridData;
			},
			guardaOrdenTrabajo: function(){
				Asi.message.progress(Asi.constants.SAVING);
					Ext.getCmp("detallePedidoForm").getForm().submit({
						url: Asi.constants.CONTEXT_PATH + "/empleado/guardarOrdenTrabajo",
		    			timeout: Asi.constants.TIMEOUT_SECONDS,
		    			params: {
		    				"materiales": OrdenTrabajo.obtenerMateriales(),
		    				"usuario": AsiGen.getUsuarioId()
		    				
		    			},
		    			success: function(form, action){
		    				var gridCompra = Ext.getCmp("ordenTrabajoGrid2");
		    				gridCompra.getStore().removeAll();
		    				gridCompra.getStore().sync();
		    				Asi.message.alert(action.result.message);
		    				if(action.result.pedidos){gridCompra.getStore().removeAll();
		    					Ext.getCmp("ordenTrabajoGrid").getStore().removeAll();
		    					Ext.getCmp("ordenTrabajoGrid").getStore().loadData(action.result.pedidos);
//		    					Ext.getCmp("ordenTrabajoGrid").getSelectionModel().select(action.result.ctgProductoIndex);
		    				}
		    			},
		    			failure: Asi.form.failureProcedure
					});
			},
			agregarAlMateriaPrima: function(){
				Ext.getCmp("ordenTrabajoGrid2").getStore().add({
					materiaPrimaId: Ext.getCmp("ctgMaterialId").displayTplData[0].ctgCatalogoId == null ? 0:Ext.getCmp("ctgMaterialId").displayTplData[0].ctgCatalogoId,
							materiaPrimaNombre: Ext.getCmp("ctgMaterialId").displayTplData[0].ctgCatalogoNombre == null ? "":Ext.getCmp("ctgMaterialId").displayTplData[0].ctgCatalogoNombre, 
							cantidad: Ext.getCmp("materiaPrimaCantidad").getValue()  == null ? 0:Ext.getCmp("materiaPrimaCantidad").getValue(),
							yardas: Ext.getCmp("materiaPrimaYarda").getValue() == null ? 0:Ext.getCmp("materiaPrimaYarda").getValue(),
							colorId: Ext.getCmp("materiaPrimaColor").getValue() == null ? 0:Ext.getCmp("materiaPrimaColor").getValue(),
							colorNombre: Ext.getCmp("materiaPrimaColor").displayTplData[0].ctgCatalogoNombre == null ? "":Ext.getCmp("materiaPrimaColor").displayTplData[0].ctgCatalogoNombre,
							pedidoDetalleId: Ext.getCmp("ordenTrabajoGrid").getSelectionModel().selected.items[0].data.pedidoDetalleId == null ? 0:Ext.getCmp("ordenTrabajoGrid").getSelectionModel().selected.items[0].data.pedidoDetalleId,
							pedidoId: Ext.getCmp("ordenTrabajoGrid").getSelectionModel().selected.items[0].data.pedidoId == null ? 0:Ext.getCmp("ordenTrabajoGrid").getSelectionModel().selected.items[0].data.pedidoId
							
					});
				Asi.form.clearAndEnable("ordenTrabajoForm");
			},
			init: function(config){
				var pedidosData = config.pedidos;
				var configToReturn = {};
				configToReturn.items = [];
				configToReturn.menu = AsiBotones.getBotones(AsiGen.getTipoUsuario(), AsiGen.getPantallaId());
				configToReturn.items.push({
					flex: 1,
					title: "PRODUCTO TERMINADO",
					autoScroll: true,
					xtype: "panel",
					layout: {
					    type: "vbox",
					    align : "stretch",
					    pack  : "start"
					},
					defaults: {width: 750, margins: "5 0 5 0"},
					dockedItems: [
									{
										
										xtype: "toolbar",
										dock: "top",
										items: [
										   '->',
										  {
									    	   text: "Guardar",
									    	   id: "ctgProductoGuardarTop",
											   iconCls: Asi.constants.icons.SAVE_ICON,
											   handler: OrdenTrabajo.guardarProductoTerminado
									       }
									    ]
									}],
					items: [
					        
					        
					        
					       
						{xtype: "form",
						id: "ContenedorPrincipal",
						flex: 1,
						autoScroll: true,
						items: [
					        
					        
					        
					        
					        
					        
					        
					        
					        
					        
					        
					        
					        
					        
					        
					        
					        
					        
					        
					        
					        
					        
					        
					        
					        
					        
					        
						{
							title: "PRODUCTO EN PROCESO",
							xtype: "grid",
							id: "ordenTrabajoGrid",
							height: 250,
							minHeight: 250,
							collapsible : true,
							store: new Ext.data.SimpleStore({
						    	data: pedidosData || [],
						    	fields: [
						    	         
						    	    "pedidoId",
						    	    "pedidoFechaPedido",
									"pedidoFechaEntrega",
									"pedidoEstado",
									"pedidoDireccionEntrega",
									"usuario"
				    	        ]
						    }),
						    columns: [
						        {header: "Numero Pedido",  dataIndex: "pedidoId", flex:1, width: 120},
						        {header: "Fecha Pedido",  dataIndex: "pedidoFechaPedido", flex:1, minWidth: 120},
					            {header: "Fecha Entrega",  dataIndex: "pedidoFechaEntrega", flex:1, minWidth: 120},
					            {header: "Direccion Entrega",  dataIndex: "pedidoDireccionEntrega", flex:1, minWidth: 120},
					            {header: "Cliente",  dataIndex: "usuario", flex:1, width: 120},
					            {
						    	  	header: 'Finalizado?',
									align:'center',
									dataIndex: 'pedidoEstado',
									xtype:'checkcolumn',
									draggable: true,
									renderer : function(value){
								        var cssPrefix = Ext.baseCSSPrefix,
								            cls = [cssPrefix + 'grid-checkheader'];

								        if (value == "4" ||  value == 4 || value == false ||  value == "false") {
								            cls.push(cssPrefix + 'grid-checkheader-checked');
								        }
								        return '<div class="' + cls.join(' ') + '">&#160;</div>';
								    }

								}
					            

						    ],

						    listeners: {
						    	selectionchange: function(model, records){
						    		AsiGen.setPedidoId(Ext.getCmp("ordenTrabajoGrid").getSelectionModel().selected.items[0].data.pedidoId);
						    		if(!records || records.length <= 0) return;
						    		var record = records[0];
						    		if(record != null){

						    			Asi.form.setValues("detallePedidoForm", record.data);
						    			Asi.form.setEnable(Ext.getCmp("detallePedidoForm"));
						    		}
						    	},
						    	afterrender: function(){
						    		if(this.store.data.items.length > 0) Asi.grid.selectFirstRow(this);
						    		Asi.form.switchButton(configWindow, "edit");
						    	}
						    }
						}
//--------------------------------------------------------------------------------------------------------  otro form (form para materiales a utilizar)    
				        
						,{
							title: "PRODUCTO TERMINADO",
							xtype: "grid",
							id: "ordenTrabajoGridFinalizado",
							height: 250,
							minHeight: 250,
							collapsible : true,
							store: new Ext.data.SimpleStore({
						    	data: config.pedidosFinalizados || [],
						    	fields: [
						    	         
						    	    "pedidoId",
						    	    "pedidoFechaPedido",
									"pedidoFechaEntrega",
									"pedidoEstado",
									"pedidoDireccionEntrega",
									"usuario"
				    	        ]
						    }),
						    columns: [
						        {header: "Numero Pedido",  dataIndex: "pedidoId", flex:1, width: 120},
						        {header: "Fecha Pedido",  dataIndex: "pedidoFechaPedido", flex:1, minWidth: 120},
					            {header: "Fecha Entrega",  dataIndex: "pedidoFechaEntrega", flex:1, minWidth: 120},
					            {header: "Direccion Entrega",  dataIndex: "pedidoDireccionEntrega", flex:1, minWidth: 120},
					            {header: "Cliente",  dataIndex: "usuario", flex:1, width: 120}
					            

						    ],

						    listeners: {
						    	selectionchange: function(model, records){
						    		if(!records || records.length <= 0) return;
						    		var record = records[0];
						    		if(record != null){

						    			Asi.form.setValues("detallePedidoForm", record.data);
						    			Asi.form.setEnable(Ext.getCmp("detallePedidoForm"));
						    		}
						    	},
						    	afterrender: function(){
						    		if(this.store.data.items.length > 0) Asi.grid.selectFirstRow(this);
						    		Asi.form.switchButton(configWindow, "edit");
						    	}
						    }
						}

				        
				        
				        
				        
				        
				    
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				        
				      ]} 
				        
				        
				        
				    ]
					
				});
				return configToReturn;
			}
		};
	}();